<?php
/**
 * Category
 *
 * Обработка данных свойств товаров
 *
 * @author Mike
 */
class ProductProperty extends ActiveRecord  {
	protected $tableName = 'product_property';
	public $pkName = 'ID_product_property';

	protected $arrSettings = array('created_at' => true);
	
	public $validatesLengthOf = array(
			'property_name' => array('min' => 2, 'max' => 256, 'message' => 'Название - 2-256 символов')
	);
	
	/**
	 * Возвращает список свойств товаров с возможными значениями
	 * 
	 */
	public static function getAllProperties() {
		$objDB = Service_Database::instanse();
		$stmt = "SELECT *
				FROM `product_property`
				LEFT JOIN `product_property_value` USING(`ID_product_property`)";
		
		$arrProperties = $objDB->select($stmt);
		return Service_ArrayConverter::splitArrayByFields($arrProperties, array('ID_product_property'));
	}
	
	/**
	 * Получает свойства дл язаданного товара
	 * 
	 * @param int $idProduct - id товара
	 */
	public static function getProductProperties($idProduct) {
		$objDB = Service_Database::instanse();
		$stmt = "SELECT `product_property`.`property_name`, `product_property_value`.`value_name`, `product_property_value`.`ID_product_property_value`
				FROM `product_property`
				INNER JOIN `product_property_value` USING(`ID_product_property`)
				INNER JOIN `product_vs_property_value` USING(`ID_product_property_value`)
				WHERE `product_vs_property_value`.`ID_product`='" . $idProduct . "'";
		
		return $objDB->select($stmt);
	}
	
	/**
	 * Возвращает список айдишников возможных значений свойств товаров в в иде массива, где $key - ID значения свойства, $value - ID свойства
	 */
	public static function getAllPropertiesValueIds() {
		$objDB = Service_Database::instanse();
		$stmt = "SELECT `product_property_value`.`ID_product_property_value`, `product_property`.`ID_product_property`
				FROM `product_property_value`
				INNER JOIN `product_property` USING(`ID_product_property`)";
	
		$arrProperties = $objDB->select($stmt);
		return Service_ArrayConverter::makeKeySimpleArrayFromMultyArray($arrProperties, 'ID_product_property_value', 'ID_product_property');
	}
}